home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / a_man / cat7 / usbinput.z / usbinput
Encoding:
Text File  |  2002-10-03  |  7.5 KB  |  199 lines

  1.  
  2.  
  3.  
  4. uuuussssbbbbiiiinnnnppppuuuutttt((((7777))))                                                        uuuussssbbbbiiiinnnnppppuuuutttt((((7777))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      usbinput - Onyx3 usb keyboard and mouse input
  10.  
  11. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  12.      The Onyx3 system uses a USB keyboard and mouse for input.  The devices
  13.      connect to the system through the USB ports on the base IO device
  14.      (Ibrick), either directly, or through a series of USB hubs.  See usb(7)
  15.      for information on valid USB topologies.
  16.  
  17.    CCCCoooommmmppppaaaattttiiiibbbbiiiilllliiiittttyyyy
  18.      The only supported keyboard is the Onyx3 keyboard part number
  19.      062-0066-001 supplied by SGI.  Other over the counter usb keyboards may
  20.      work, but have not been qualified by SGI.
  21.  
  22.      Likewise, the only SGI qualified mouse is part number 063-0011-001.
  23.  
  24.    IIIInnnntttteeeerrrrffffaaaacccceeee aaaannnndddd AAAAddddmmmmiiiinnnniiiissssttttrrrraaaattttiiiioooonnnn
  25.      USB input devices are presented to applications through the directories
  26.      /dev/input[N], where N is the logical device number of the usb device.
  27.      /dev/inputis an alias for /dev/input0 (ie. device 0) for compatibility
  28.      reasons.
  29.  
  30.      The mapping of a physical device to its device number is controlled by
  31.      ioconfig(1M) through the file /etc/ioconfig.conf.  The logical controller
  32.      number in /etc/ioconfig.conf corresponds to the device number, and
  33.      determines the /dev/input[N] path to open to access it.  For example, the
  34.      following ioconfig.conf lines:
  35.  
  36.           0 /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/1/keyboard
  37.           0 /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/2/mouse
  38.           1 /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/3/keyboard
  39.           1 /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/4/mouse
  40.  
  41.      Map two keyboards and two mice.  The keyboard at physical location
  42.      /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/1/keyboard is keyboard 0
  43.      (/dev/input/keyboard), and the keyboard at physical location
  44.      /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/3/keyboard is keyboard 1
  45.      (/dev/input1/keyboard).  Likewise for the mouse entries.  See usb(7) for
  46.      a description of the physical device path.
  47.  
  48.      hinv(1M) can be used to display usb devices that the system knows about
  49.      and their corresponding device id.  The hinv output for usb keyboards and
  50.      mice looks like:
  51.  
  52.           USB Human Interface Device: device id 0 type keyboard
  53.           USB Human Interface Device: device id 0 type mouse
  54.           USB Human Interface Device: device id 1 type keyboard
  55.           USB Human Interface Device: device id 1 type mouse
  56.  
  57.      If hinv shows a device id of -1, it means that the device is new to the
  58.      system (ie. it has been plugged in after the system booted), and that
  59.      ioconfig needs to be run to assign a device id and construct a
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. uuuussssbbbbiiiinnnnppppuuuutttt((((7777))))                                                        uuuussssbbbbiiiinnnnppppuuuutttt((((7777))))
  71.  
  72.  
  73.  
  74.      /dev/input[N]/{keyboard,mouse} entry point.
  75.  
  76.      If you want to change the device number of a device, you can edit
  77.      /etc/ioconfig.conf and change the device number.  You must rerun ioconfig
  78.      to establish the new device number.  Note that you should shut down any
  79.      applications that have the device open under it's old device id before
  80.      doing this.  Also note that device id's must be unique among device
  81.      types.
  82.  
  83.      Likewise, if you have stale entries in /etc/ioconfig.conf, you can delete
  84.      them to reuse the device id's.
  85.  
  86.      The first time ioconfig sees a device, it assigns it an unused device id.
  87.      The id assigned will be the lowest id available (ie. not appearing in the
  88.      /etc/ioncofig.conf file for that type of device).  The only way to pre-
  89.      assign a given device id is to hand enter the device in
  90.      /etc/ioconfig.conf (not recommended).
  91.  
  92.    HHHHooootttt PPPPlllluuuugggg
  93.      USB keyboard and mouse devices are fully hot pluggable.  If a
  94.      /dev/input[X]/{keyboard,mouse} is open, and it is unplugged, any
  95.      application having that device open will stall.  Once a device of the
  96.      same type is plugged back in, the application will continue.  Note that
  97.      plugging in a 'new' device (one not represented in /etc/ioconfig.conf)
  98.      requires that ioconfig be run to assign a device id before it can be
  99.      used.
  100.  
  101.    TTTTrrrroooouuuubbbblllleeeesssshhhhoooooooottttiiiinnnngggg
  102.      There is currently no administrative tool to reset a usb keyboard or
  103.      mouse.  Unplugging and replugging the device is the only method of reset.
  104.      Note that an unresponsive keyboard or mouse could be due to an
  105.      unresponsive USB hub upstream.  If this is suspected, you can unplug the
  106.      hub, and plug it back in.  Any downstream keyboard/mouse devices should
  107.      come back as though they were hot plugged.
  108.  
  109. NNNNOOOOTTTTEEEESSSS
  110.      In order to minimize changes to application code, the usb keyboard and
  111.      mouse driver convert usb usage codes to ps2 scan code sequences at the
  112.      /dev/input[N]/keyboard devices.  Likewise ps2 mouse codes are generated
  113.      at /dev/input[N]/mouse.
  114.  
  115.      The entry points /dev/input/keyboard and /dev/input/mouse will always
  116.      exist.  If there is no corresponding physical device (ie. no keyboard
  117.      and/or mouse with device id 0), the device will operate similar to
  118.      /dev/null.  If an application has the device open in this mode, and a
  119.      physical device is then plugged in (and ioconfig is run) the application
  120.      must be restarted to access the real device.  This mode of operation is
  121.      present to allow X to be started without a keyboard and mouse physically
  122.      present for the purposes of manufacturing checkout, and should not be
  123.      used or relied upon outside of that context.
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. uuuussssbbbbiiiinnnnppppuuuutttt((((7777))))                                                        uuuussssbbbbiiiinnnnppppuuuutttt((((7777))))
  137.  
  138.  
  139.  
  140. EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
  141.      Assume we have a keyboard with the following ioconfig.conf entry:
  142.  
  143.           0 /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/1/keyboard
  144.  
  145.      This means the keyboard is plugged into port 1 of a hub that is plugged
  146.      into port 1 of the ibrick root hub.
  147.  
  148.      To omit the 2nd hub and plug the keyboard into the ibrick directly, move
  149.      the keyboard, and change the entry in ioconfig.conf to:
  150.  
  151.           0 /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/keyboard
  152.  
  153.      Conversly, to change the device id (and therefore the /dev/inputX
  154.      directory) that the keyboard is grouped under, change the ioconfig.conf
  155.      entry to something like:
  156.  
  157.           2 /hw/module/006c05/Ibrick/xtalk/15/pci/5/usb/1/1/keyboard
  158.  
  159. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  160.      usb(7), pckeyboard(7), pcmouse(7), ioconfig(1M).
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.